package com.yzf;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by dell on 2016/1/28.
 */
public class TimeUtil {
    public static void main(String[] a){
//        //当前的日期(时间戳)
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String date = sdf.format(new Date(System.currentTimeMillis()));
//        System.out.println("当前日期格式(时间戳)："+date);
//
//        //当前时间格式
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
//        String format = df.format(new Date());
//        System.out.println("当前时间格式："+format);// new Date()为获取当前系统时间


//        String date = dateDiff(System.currentTimeMillis()+"");//时间戳格式
        String date = dateDiff("2016-01-29 10:13:50");//时间格式
        System.out.print(date);
    }
    public static String dateDiff(String startTime) {
        //如果输入是时间戳格式就转换成日期格式计算时间差
        boolean allNum = startTime.matches("[0-9]+");
        if(allNum){
            startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(Long.parseLong(startTime)));
        }
        //当前的日期
        String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        // 按照传入的格式生成一个simpledateformate对象
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
        long nh = 1000 * 60 * 60;// 一小时的毫秒数
        long nm = 1000 * 60;// 一分钟的毫秒数
        long ns = 1000;// 一秒钟的毫秒数
        long diff;
        long day = 0;
        long hour = 0;
        long min = 0;
        long sec = 0;
        // 获得两个时间的毫秒时间差异
        try {
            diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
            day = diff / nd;// 计算差多少天
            hour = diff % nd / nh + day * 24;// 计算差多少小时
            min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟
            sec = diff % nd % nh % nm / ns;// 计算差多少秒
            // 输出结果
            System.out.println("时间相差：" + day + "天" + (hour - day * 24) + "小时"
                    + (min - day * 24 * 60) + "分钟" + sec + "秒。");
            System.out.println("day="+day+",hour=" + hour + ",min=" + min+",sec="+sec);
//            if (str.equalsIgnoreCase("h")) {
//                return hour;
//            } else {
//                return min;
//            }
            if(day > 0){
                return day+"天前";
            }else if(day ==0 && hour >0){
                return  hour+"小时前";
            }else if(day == 0 && hour == 0 && min >0){
                return min+"分钟前";
            }else if(day == 0 && hour == 0 && min == 0 && sec >0){
//                return sec+"秒前";
                return "1分钟前";
            }else{
                return "1分钟前";
            }

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
//        if (str.equalsIgnoreCase("h")) {
//            return hour;
//        } else {
//            return min;
//        }
        if(day > 0){
            return day+"天前";
        }else if(day ==0 && hour >0){
            return  hour+"小时前";
        }else if(day == 0 && hour == 0 && min >0){
            return min+"分钟前";
        }else if(day == 0 && hour == 0 && min == 0 && sec >0){
//                return sec+"秒前";
            return sec+"1分钟前";
        }else {
            return "1分钟前";
        }

    }
}
